热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

确定性|笔者_轻松入门强化学习的一本新书《EasyRL强化学习教程》

篇首语:本文由编程笔记#小编为大家整理,主要介绍了轻松入门强化学习的一本新书《EasyRL强化学习教程》相关的知识,希望对你有一定的参考价值。强化学习(

篇首语:本文由编程笔记#小编为大家整理,主要介绍了轻松入门强化学习的一本新书《Easy RL 强化学习教程》相关的知识,希望对你有一定的参考价值。


强化学习(reinforcement learning,RL)讨论的问题是智能体(agent)怎么在复杂、不确定的环境(environment)里面去最大化它能获得的奖励。如图 1.1所示,强化学习由两部分组成:智能体和环境。在强化学习过程中,智能体与环境一直在交互。智能体在环境里面获取某个状态后,它会利用该状态输出一个动作(action),这个动作也称为决策(decision)。然后这个动作会在环境之中被执行,环境会根据智能体采取的动作,输出下一个状态以及当前这个动作带来的奖励。智能体的目的就是尽可能多地从环境中获取奖励。

强化学习的国内相关资料相对较少, 入门较为困难。因此,笔者尝试在网上寻找公开课进行学习,在精心 挑选后,使用李宏毅老师的“深度强化学习”、周博磊老师的“强化学习纲要”以 及李科浇老师的“百度强化学习”公开课(以下简称 “3 门公开课”) 作为学习课 程, 获益匪浅, 于是将所学内容结合笔者个人的理解和体会初步整理成笔记。之 后, 在众多优秀开源教程的启发下, 笔者决定将该笔记制作成教程来让更多的强化学习初学者受益。这本教程就是刚刚上架的“蘑菇书”《Easy RL 强化学习教程》。


Easy RL 强化学习教程


萃取3门强化学习经典公开课精华

李宏毅“深度强化学习”+周博磊“强化学习纲要”+李科浇“世界冠军带你从零实践强化学习”

Datawhale的开源“蘑菇书”——Easy-RL

来自中科院、清华、北大的Datawhale成员自学笔记,GitHub发布9个月下载过万。

小白轻松入门的指南,大厂强化学习面试敲门砖

简单生动的例子+重难点公式详细推导+关键词、习题和面试题+Python实现代码

4项配套资源,满满意外收获!

◆ 可下载Python实现代码 ◆ 可下载习题答案

◆ 可下载面试答案 ◆ 学习交流服务

全书主要内容源于 3 门公开课, 并在其基础上进行了一定的原创。比如, 为了尽可能地降低阅读门槛, 笔者对 3 门公开课的精华内容进行选取并优化, 所涉及的公式都有详细的推导过程, 对较难理解的知识点进行了重点讲解和强化, 方 便读者较为轻松地入门。此外, 为了书籍的丰富性, 笔者还补充了不少 3 门公开 课之外的强化学习相关知识。全书共 13 章, 大体上可分为 2 个部分: 第 1 部分 包括第 1 ∼ 3 章,介绍强化学习基础知识以及传统强化学习算法;第 2 部分包括

第 4 ∼ 13 章, 介绍深度强化学习算法以及常见问题的解决方法。第 2 部分各章 相对独立,读者可根据自己的兴趣和时间情况选择阅读。

李宏毅老师是台湾大学副教授,其研究方向为机器学习、深度学习及语音识别 与理解。李宏毅老师的课程在国内很受欢迎, 很多人选择的机器学习入门学习材料都是李宏毅老师的公开课视频。李宏毅老师的“深度强化学习”课程幽默风趣, 他会通过很多有趣的例子来讲解强化学习理论。比如李老师经常会用玩雅达利游 戏的例子来讲解强化学习算法。周博磊老师是 UCLA(University of California, Los Angeles,加利福尼亚大学洛杉矶分校)助理教授(原香港中文大学助理教授), 其研究方向为机器感知和智能决策, 在人工智能顶级会议和期刊发表了 50 余篇 学术论文, 论文总引用数超过 1 万次。周博磊老师的“强化学习纲要”课程理论 严谨、内容丰富, 全面地介绍了强化学习领域, 并且有相关的代码实践。李科浇 老师是飞桨强化学习 PARL 团队核心成员,百度高级研发工程师,其所在团队曾 两度夺得 NeurIPS 强化学习赛事冠军。李科浇老师的“百度强化学习”实战性强, 通过大量的代码来讲解强化学习。经过笔者不完全统计, 本书所依托的 3 门公开 课的总播放量为 80 多万,深受广大初学者欢迎,3 位老师的课程均可在哔哩哔哩 (B 站)上进行观看。读者在观看相关公开课的同时,可以使用本书作为教辅,进 一步深入理解公开课的内容。

本书在大部分章节的最后设置了原创的关键词、习题和面试题来提高和巩固 读者对知识的清晰度和掌握程度。其中,关键词部分总结了对应章节的重点概念, 方便读者高效地回忆并掌握核心内容; 习题部分以问答的形式阐述了本章节中出 现的知识点,帮助读者理清知识脉络;面试题部分来源于大厂的算法岗面试真题, 通过还原最真实的面试场景和面试的问题, 帮助读者开阔思路, 为读者面试理想 的岗位助力。此外, 笔者以为, 强化学习是一个理论与实践相结合的学科, 读者 不仅要理解其算法背后的一些数学原理, 还要通过上机实践来实现算法。本书配 有对应的 Python 代码实现, 可以让读者通过动手实现各种经典的强化学习算法, 充分掌握强化学习算法的原理。本书经过近 1 年的更新迭代以及读者对于我们开源版教程的上百次的反馈和交流,对您的学习和工作一定会是一个有利的加持。


本书包含什么内容?

全书共13章,大体上可分为两个部分:第一部分包括第1~3章,介绍强化学习基础知识以及传统强化学习算法;第二部分包括第4~13章,介绍深度强化学习算法及其常见问题的解决方法。第二部分各章相对独立,读者可根据自己的兴趣和时间选择性阅读。


我是刚刚毕业的学生,想去“大厂”工作,本书是否有帮助?

本书习题部分以问答的形式阐述了相应章中出现的知识点,以帮助读者理清知识脉络;面试题部分的内容源于“大厂”的算法岗面试真题,通过还原真实的面试场景和面试问题,为读者面试理想的岗位助力。


目录

第 1 章绪论 1

1.1 强化学习概述 1

1.1.1 强化学习与监督学习 1

1.1.2 强化学习的例子 5

1.1.3 强化学习的历史 7

1.1.4 强化学习的应用 8

1.2 序列决策概述 10

1.2.1 智能体和环境 10

1.2.2 奖励 10

1.2.3 序列决策 10

1.3 动作空间 12

1.4 强化学习智能体的组成部分和类型 12

1.4.1 策略 13

1.4.2 价值函数 13

1.4.3 模型 14

1.4.4 强化学习智能体的类型 16

1.5 学习与规划 19

1.6 探索和利用 20

1.7 强化学习实验 22

1.7.1 Gym 23

1.7.2 MountainCar-v0 例子27

1.8 关键词 30

1.9 习题 31

1.10 面试题 32

参考文献 32

第 2 章马尔可夫决策过程 33

2.1 马尔可夫过程 34

2 | Easy RL:强化学习教程

2.1.1 马尔可夫性质 34

2.1.2 马尔可夫过程/马尔可夫链 34

2.1.3 马尔可夫过程的例子 35

2.2 马尔可夫奖励过程 36

2.2.1 回报与价值函数 36

2.2.2 贝尔曼方程 38

2.2.3 计算马尔可夫奖励过程价值的迭代算法 42

2.2.4 马尔可夫奖励过程的例子 43

2.3 马尔可夫决策过程 44

2.3.1 马尔可夫决策过程中的策略 44

2.3.2 马尔可夫决策过程和马尔可夫过程/马尔可夫奖励过程的区别 45

2.3.3 马尔可夫决策过程中的价值函数 45

2.3.4 贝尔曼期望方程 46

2.3.5 备份图47

2.3.6 策略评估 49

2.3.7 预测与控制 51

2.3.8 动态规划 53

2.3.9 使用动态规划进行策略评估 53

2.3.10 马尔可夫决策过程控制 56

2.3.11 策略迭代 58

2.3.12 价值迭代 61

2.3.13 策略迭代与价值迭代的区别 63

2.3.14 马尔可夫决策过程中的预测和控制总结 66

2.4 关键词 67

2.5 习题 68

2.6 面试题 69

参考文献 69

第3 章表格型方法 70

3.1 马尔可夫决策过程 70

3.1.1 有模型71

3.1.2 免模型72

3.1.3 有模型与免模型的区别 73

3.2 Q 表格 73

3.3 免模型预测 77

3.3.1 蒙特卡洛方法 77

3.3.2 时序差分方法 80

3.3.3 动态规划方法、蒙特卡洛方法以及时序差分方法的自举和采样 86

3.4 免模型控制 88

3.4.1 Sarsa:同策略时序差分控制 91

3.4.2 Q 学习:异策略时序差分控制 94

3.4.3 同策略与异策略的区别 97

3.5 使用Q 学习解决悬崖寻路问题 98

3.5.1 CliffWalking-v0 环境简介 98

3.5.2 强化学习基本接口 100

3.5.3 Q 学习算法 102

3.5.4 结果分析 103

3.6 关键词 104

3.7 习题105

3.8 面试题 105

参考文献 105

第4 章策略梯度 106

4.1 策略梯度算法 106

4.2 策略梯度实现技巧 115

4.2.1 技巧1:添加基线 115

4.2.2 技巧2:分配合适的分数 117

4.3 REINFORCE:蒙特卡洛策略梯度 119

4.4 关键词 125

4.5 习题125

4.6 面试题 125

参考文献 126

第5 章近端策略优化 127

5.1 从同策略到异策略 127

5.2 近端策略优化 133

5.2.1 近端策略优化惩罚 134

4 | Easy RL:强化学习教程

5.2.2 近端策略优化裁剪 135

5.3 关键词 138

5.4 习题139

5.5 面试题 139

参考文献 139

第6 章深度Q 网络 140

6.1 状态价值函数 140

6.2 动作价值函数 145

6.3 目标网络 150

6.4 探索152

6.5 经验回放 154

6.6 深度Q 网络算法总结156

6.7 关键词 157

6.8 习题158

6.9 面试题 159

参考文献 159

第7 章深度Q 网络进阶技巧 160

7.1 双深度Q 网络 160

7.2 竞争深度Q 网络 162

7.3 优先级经验回放 165

7.4 在蒙特卡洛方法和时序差分方法中取得平衡 166

7.5 噪声网络 167

7.6 分布式Q 函数 168

7.7 彩虹170

7.8 使用深度Q 网络解决推车杆问题 172

7.8.1 CartPole-v0 简介 172

7.8.2 深度Q 网络基本接口 173

7.8.3 回放缓冲区175

7.8.4 Q 网络 175

7.8.5 深度Q 网络算法 176

7.8.6 结果分析 178

7.9 关键词 179

7.10 习题 180

7.11 面试题 180

参考文献 180

第8 章针对连续动作的深度Q 网络 181

8.1 方案1:对动作进行采样182

8.2 方案2:梯度上升 182

8.3 方案3:设计网络架构 182

8.4 方案4:不使用深度Q 网络 183

8.5 习题184

第9 章演员-评论员算法 185

9.1 策略梯度回顾 185

9.2 深度Q 网络回顾 186

9.3 演员-评论员算法 187

9.4 优势演员-评论员算法 188

9.5 异步优势演员-评论员算法 190

9.6 路径衍生策略梯度 191

9.7 与生成对抗网络的联系 195

9.8 关键词 196

9.9 习题196

9.10 面试题 196

第 10 章深度确定性策略梯度 197

10.1 离散动作与连续动作的区别 197

10.2 深度确定性策略梯度199

10.3 双延迟深度确定性策略梯度 203

10.4 使用深度确定性策略梯度解决倒立摆问题 205

10.4.1 Pendulum-v1 简介 205

10.4.2 深度确定性策略梯度基本接口 206

10.4.3 Ornstein-Uhlenbeck 噪声 207

10.4.4 深度确定性策略梯度算法 208

10.4.5 结果分析209

10.5 关键词 211

10.6 习题 211

10.7 面试题 211

参考文献 211

第 11 章稀疏奖励212

11.1 设计奖励 212

11.2 好奇心 214

11.3 课程学习 216

11.4 分层强化学习 219

11.5 关键词 221

11.6 习题 222

参考文献 222

第 12 章模仿学习223

12.1 行为克隆 223

12.2 逆强化学习 226

12.3 第三人称视角模仿学习 231

12.4 序列生成和聊天机器人 232

12.5 关键词 233

12.6 习题 233

参考文献 234

第 13 章AlphaStar 论文解读 235

13.1 AlphaStar 以及背景简介 235

13.2 AlphaStar 的模型输入和输出是什么呢?——环境设计 235

13.2.1 状态(网络的输入) 236

13.2.2 动作(网络的输出) 236

13.3 AlphaStar 的计算模型是什么呢?——网络结构 237

13.3.1 输入部分237

13.3.2 中间过程239

13.3.3 输出部分239

13.4 庞大的AlphaStar 如何训练呢?——学习算法 240

13.4.1 监督学习240

13.4.2 强化学习241

13.4.3 模仿学习242

13.4.4 多智能体学习/自学习 243

13.5 AlphaStar 实验结果如何呢?——实验结果 243

13.5.1 宏观结果243

13.5.2 其他实验(消融实验) 244

13.6 关于AlphaStar 的总结 245

参考文献 245



推荐阅读
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • Halcon之图像梯度、图像边缘、USM锐化
    图像梯度、图像边缘、USM锐化图像梯度、图像边缘、USM锐化图像梯度、图像边缘、USM锐化图像卷积:1.模糊2.梯度3.边缘4.锐化1.视频教程:B站、 ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 在2019中国国际智能产业博览会上,百度董事长兼CEO李彦宏强调,人工智能应务实推进其在各行业的应用。随后,在“ABC SUMMIT 2019百度云智峰会”上,百度展示了通过“云+AI”推动AI工业化和产业智能化的最新成果。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战
    OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战 ... [详细]
  • 在C#编程中,数值结果的格式化展示是提高代码可读性和用户体验的重要手段。本文探讨了多种格式化方法和技巧,如使用格式说明符、自定义格式字符串等,以实现对数值结果的精确控制。通过实例演示,展示了如何灵活运用这些技术来满足不同的展示需求。 ... [详细]
author-avatar
U友39373533
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有